<?php
/******************************************
 * sys.php 系统入口文件
 ******************************************/

defined('ROOT_PATH') or define('ROOT_PATH', dirname($_SERVER['SCRIPT_FILENAME']) . DIRECTORY_SEPARATOR);
/**0 生产环境，1 app开发环境，2 测试并无登陆环境并无检查权限*/
defined('APP_DEBUG') or define('APP_DEBUG', 0);
//定义目录常量
define('APP_PATH',      ROOT_PATH       . 'App/');
define('SYS_PATH',      ROOT_PATH       . 'Sys/');
define('RES_PATH',      ROOT_PATH       . 'Res/');
/**sysconfig配置目录data*/
define('CONFIG_PATH',   SYS_PATH        . 'conf/');
/**可写的临时文件目录*/
define('TEMP_PATH',     RES_PATH        . 'temp/static_caches/');
define('LOG_PATH',      ROOT_PATH       . 'Log/');

define("EXT", '.php');
// 记录开始运行时间
$GLOBALS['_beginTime'] = microtime(TRUE);
/* 初始化设置 */
@ini_set('memory_limit',          '128M');
@ini_set('session.cache_expire',  600);//客户端的过期时间
@ini_set('session.use_trans_sid', 1);//Session变量不能传送到下一页
@ini_set('session.use_cookies',   1);
@ini_set('session.auto_start',    0);
//@ini_set('display_errors',        1);//错误显示。

error_reporting(E_ALL);
ini_set('display_errors',0);
ini_set('log_errors',1); 
ini_set('error_log',  LOG_PATH . 'error/' . date("Y-m-d") .'.txt');

session_start();
if (DIRECTORY_SEPARATOR == '\\'){ //此window
    @ini_set('include_path', '.;' . ROOT_PATH);
} else {    //此linux
    @ini_set('include_path', '.:' . ROOT_PATH);
}
//设置时间区域
date_default_timezone_set('PRC');
define('X_CHARSET','utf-8');

require(SYS_PATH . 'base/mylog.php');//加载日志类
require(SYS_PATH . 'base/public.php'); //加载公用函数方法
require(SYS_PATH . 'base/common.php');//加载公用类
require(SYS_PATH . 'base/db_mysqli.php');//加载数据库基础类
require_once(SYS_PATH . 'base/waf.php');//加载防攻击文件

common::load_dir(SYS_PATH . 'core');//加载自定义的核心目录
common::load_dir(SYS_PATH . 'library');//加载自定义的lib目录
common::load_dir(APP_PATH . 'models');//自动加载models里所有的文件 
common::load_dir(APP_PATH . 'controllers');//自动加载controllers里所有的文件 

// 注册AUTOLOAD方法
//spl_autoload_register('Think\Think::autoload');      
//// 设定错误和异常处理
//register_shutdown_function('error::fatalError');
//set_error_handler('Think\Think::appError');
//set_exception_handler('Think\Think::appException');
/* 对用户传入的变量进行转义操作。*/
if (!get_magic_quotes_gpc())
{
    if (!empty($_GET)) {
        $_GET  = addslashes_deep($_GET);
    }
    if (!empty($_POST)){
        $_POST = addslashes_deep($_POST);
    }
    $_COOKIE   = addslashes_deep($_COOKIE);
    $_REQUEST  = addslashes_deep($_REQUEST);
}
/**加载配置文件，缓存起来*/
$_CFG = common::load()->load_x_config();
/*实现自动登陆*/
AdminUserModel::load()->auto_login();
/*mcv核心运行方法*/
main::load()->display();